package com.whacos.modules.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.whacos.common.entity.Tree;
import com.whacos.modules.system.vo.FileVO;
import com.whacos.modules.system.vo.SysUserVO;
import com.whacos.modules.system.entity.SysDept;
import com.whacos.modules.system.entity.SysUser;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @author xiongdun
 * @description 系统用户SysUserService
 * @since 2018/11/17 17:11
 */
//@Service
public interface SysUserService extends IService<SysUser> {

    /**
     * 按登录名获取用户信息
     * @param loginName
     * @return
     */
    SysUser get(String loginName);

    String getUserName(Long id);

    /**
     * 判断用户是否已经存在
     * @param sysUser
     * @return
     */
    boolean exist(SysUser sysUser);

    /**
     * 批量删除
     * @param ids
     * @return
     */
    boolean batchRemove(List<Long> ids);

    /**
     * 重置密码
     * @param sysUserVO
     * @param sysUser
     * @return
     * @throws Exception
     */
    int resetPassword(SysUserVO sysUserVO, SysUser sysUser) throws Exception;

    /**
     * 管理员重置密码
     * @param sysUserVO
     * @return
     * @throws Exception
     */
    int adminResetPassword(SysUserVO sysUserVO) throws Exception;

    /**
     *
     * @return
     */
    Tree<SysDept> getDeptTree();

    /**
     * 更新个人信息
     *
     * @param sysUser
     * @return
     */
    int updatePersonal(SysUser sysUser);

    /**
     * 更新个人图片
     *
     * @param file       图片
     * @param avatarData 裁剪信息
     * @param userId     用户ID
     * @throws Exception
     */
    FileVO updatePersonalImage(MultipartFile file, String avatarData, Long userId) throws Exception;


}
